import cv2


#创建窗口
cv2.namedWindow('video', cv2.WINDOW_NORMAL)
cv2.resizeWindow('video', 1280, 720)   


# 获取视频设备, 默认为0
cap = cv2.VideoCapture(0)
if not cap.isOpened():
    print("Error: Camera not found")
    exit()

# 尝试不同的编码格式
fourcc = cv2.VideoWriter_fourcc(*'XVID')
# 设置适合你摄像头真实分辨率
# 分辨率和帧率需要根据您的摄像头调整

# 使用绝对路径
output_path = 'E:\\python\\output.avi'  # Windows 路径示例
vw = cv2.VideoWriter('output.avi', fourcc, 20.0, (1280, 720))

""" """
if not vw.isOpened():
    print("Error: Could't open output video file.")
    exit()


# 因为要一直读，所以用循环
while vw:
    ret, frame = cap.read()
    if not ret:
        print("Fail to grab frame")
        exit()


    # 写数据到多媒体文件
    vw.write(frame)
    # 显示帧
    cv2.imshow('video', frame)

    # 等待键盘时间，如果为q，退出
    key = cv2.waitKey(20)
    if(key & 0xFF == ord('q')):
        break

# 释放VideoCapture
cap.release()
# 释放VideoWriter
vw.release()

cv2.destroyAllWindows()